#include <stdio.h>
#include <stdlib.h>

typedef struct node
{
    int data;
    struct node* next;
}Lnode;

void SListPushBack(Lnode** phead,int x)
{
    Lnode* newnode;
    newnode=(Lnode*)malloc(sizeof(Lnode));
    newnode->data=x;
    newnode->next=*phead;
    *phead=newnode;
}
void cz(Lnode** phead)
{
    int max=0,i=0,k;
    Lnode* cur=*phead;
    Lnode* pre=cur;
    while(cur!=NULL)
    {
        if((cur->data)>max)
        {
            max=cur->data;
            k=i;
        }
        cur=cur->next;
        i++;
    }
    cur=*phead;
    if(k>0)
    {
        for(int j=0;j<k;j++)
        {
            pre=cur;
            cur=cur->next;
        }
        pre->next=cur->next;
        Lnode* newnode;
        newnode=(Lnode*)malloc(sizeof(Lnode));
        newnode->data=max;
        newnode->next=*phead;
        *phead=newnode;
    }
}
int main()
{
    int x;
    Lnode* plist=NULL;
    while((scanf("%d",&x)!=EOF)&&x)
    {
        SListPushBack(&plist,x);
    }
    cz(&plist);
    Lnode* tail=plist;
    while(tail!=NULL)
    {
        printf("%d ",tail->data);
        tail=tail->next;
    }
    return 0;
}
